package com.itheima.sfbx.insurance.handler.impl;

import com.itheima.sfbx.framework.commons.constant.insure.InsureConstant;
import com.itheima.sfbx.insurance.dto.CustomerRelationVO;
import com.itheima.sfbx.insurance.dto.DoInsureVo;
import com.itheima.sfbx.insurance.dto.WarrantyVO;
import com.itheima.sfbx.insurance.handler.InsureHandler;
import com.itheima.sfbx.insurance.service.ICustomerRelationService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.math.BigDecimal;

/**
 * @ClassName AccidentInsureHandler.java
 * @Description 保障型意外类：保险投保、创建订单、保费计算
 */
@Service
public class AccidentInsureHandler extends SafeguardInsureHandler implements InsureHandler {
    /*
    //刚开始写 的时候这里是空 那么就会集成父类
    在意外保险类型试算之前进行逻辑判断：

    1.当前这份保险是给谁买的？找到被保人
    2.查看被保人的月收入是否为空，或者超过100 0000 元，如果是，则提示用户，请选择其他险种
     */

    @Resource
    private ICustomerRelationService customerRelationService;

    @Override
    public String doPremium(DoInsureVo doInsureVo) {
        //1.当前这份保险是给谁买的？找到被保人
        String customerRelationId = doInsureVo.getCustomerRelationIds().get(0);
        CustomerRelationVO customerRelationVO = customerRelationService.findById(customerRelationId);

        //2.查看被保人的月收入是否为空，或者超过100 0000 元，如果是，则提示用户，请选择其他险种
        if(customerRelationVO!=null){
            if(customerRelationVO.getIncome() == null ||
            customerRelationVO.getIncome().compareTo(new BigDecimal(1000000))>0){
                throw new RuntimeException("请选择其他险种");
            }
        }
        return super.doPremium(doInsureVo);
    }



}
